﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using ThiagoSoftware.Dados;
using GerTestes.Entity;
using System.Data.SqlClient;

namespace GerTestes.Data
{
    public class DBCasosRequisito
    {
        #region Get Casos de Requisitos
        public DataTable getCasosRequisito(int pSubModulo)
        {
            string SQL = @"SELECT tcr.ID_CASO_REQUISITO,
                                   tcr.DESCRICAO,
                                   tcr.OBSERVACAO,
                                   tcr.ATIVO
                            FROM   TB_CASOS_REQUISITO tcr
                            WHERE  tcr.ID_SUBMODULO = @ID_SUBMODULO
                            ORDER BY tcr.DESCRICAO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_SUBMODULO", SqlDbType.Int, pSubModulo);
            return db.GetDataTable();
        }
        #endregion

        #region Get Casos de Requisitos
        public CasoRequisitos getDadosCasosRequisito(int pCasoRequisito)
        {
            string SQL = @"SELECT tcr.ID_CASO_REQUISITO,
                                   tcr.ID_SUBMODULO,
                                   tcr.DESCRICAO,
                                   tcr.OBSERVACAO,
                                   tcr.ATIVO
                            FROM   TB_CASOS_REQUISITO tcr
                            WHERE  tcr.ID_CASO_REQUISITO = @ID_CASO_REQUISITO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_CASO_REQUISITO", SqlDbType.Int, pCasoRequisito);
            try
            {
                db.AbrirConexao();
                SqlDataReader dr = db.ExecuteReader();
                CasoRequisitos caso = new CasoRequisitos();
                if (dr.Read())
                {
                    caso.CodCasoRequisito = Convert.ToInt32(dr["ID_CASO_REQUISITO"]);
                    caso.CodSubModulo = Convert.ToInt32(dr["ID_SUBMODULO"]);
                    caso.Descricao = dr["DESCRICAO"].ToString();
                    caso.Ativo = dr["ATIVO"].ToString();
                    caso.Observacao = dr["OBSERVACAO"].ToString();
                }
                return caso;
            }
            catch
            {
                return null;
            }
        }
        #endregion

        #region Incluir Caso de Requisito
        public bool incluirCasoRequisito(CasoRequisitos casoRequisito)
        {
            string SQL = @"INSERT INTO TB_CASOS_REQUISITO
                              (
                                ID_SUBMODULO,
                                DESCRICAO,
                                ATIVO,
                                OBSERVACAO,
                                DATA_CADASTRO
                              )
                            VALUES
                              (
                                @ID_SUBMODULO,
                                @DESCRICAO,
                                @OBSERVACAO,
                                @ATIVO,
                                GETDATE()
                              )";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_SUBMODULO", SqlDbType.Int, casoRequisito.CodSubModulo);
            db.AddParam("@DESCRICAO", SqlDbType.VarChar, casoRequisito.Descricao);
            db.AddParam("@OBSERVACAO", SqlDbType.VarChar, casoRequisito.Observacao);
            db.AddParam("@ATIVO", SqlDbType.VarChar, casoRequisito.Ativo);            
            return db.ExecuteNonQuery();
        }
        #endregion

        #region Alterar Caso de Requisito
        public bool alterarCasoRequisito(CasoRequisitos casoRequisito)
        {
            string SQL = @"UPDATE TB_CASOS_REQUISITO
                                SET    DESCRICAO          = @DESCRICAO,
                                       OBSERVACAO         = @OBSERVACAO,
                                       ATIVO              = @ATIVO
                                WHERE  ID_CASO_REQUISITO  = @ID_CASO_REQUISITO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@DESCRICAO", SqlDbType.VarChar, casoRequisito.Descricao);
            db.AddParam("@OBSERVACAO", SqlDbType.VarChar, casoRequisito.Observacao);
            db.AddParam("@ATIVO", SqlDbType.VarChar, casoRequisito.Ativo);
            db.AddParam("@ID_CASO_REQUISITO", SqlDbType.Int, casoRequisito.CodCasoRequisito);
            return db.ExecuteNonQuery();
        }
        #endregion

        #region Excluir Caso de Requisito
        public bool excluirCasoRequisito(int pCasoRequisito)
        {
            string SQL = @"DELETE 
                            FROM   TB_CASOS_REQUISITO
                            WHERE  ID_CASO_REQUISITO = @ID_CASO_REQUISITO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_CASO_REQUISITO", SqlDbType.Int, pCasoRequisito);
            return db.ExecuteNonQuery();
        }
        #endregion
    }
}
